package gat.dto.res.backgroundUser;

import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;

import org.springframework.validation.annotation.Validated;

import com.bitsun.core.framwork.api.dto.IResponseDto;
import com.fasterxml.jackson.annotation.JsonProperty;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 权限表
 *
 * @Author: tmac
 * @Email: tmac
 */
@Validated
@AllArgsConstructor
@NoArgsConstructor
@Data
@ApiModel
public class PermissionsResDto implements IResponseDto {
    private static final long serialVersionUID = 1L;


    /**
     * 主键 int8
     */
    @ApiModelProperty(value = "主键")
    @JsonProperty(index = 0)

    private Long id;
    /**
     * 权限名称 varchar
     */
    @ApiModelProperty(value = "权限名称")
    @JsonProperty(index = 10)

    private String name;

    /**
     * 节点等级 int4
     */
    @ApiModelProperty(value = "节点等级")
    @JsonProperty(index = 40)

    private Integer level;
    /**
     * 父级id int8
     */
    @ApiModelProperty(value = "父级id")
    @JsonProperty(index = 50)

    private Long parentId;
    /**
     * 最新修改时间 timestamp
     */
    @ApiModelProperty(value = "最新修改时间")
    @JsonProperty(index = 70)
    private LocalDateTime modifyTime;
    /**
     * 最新修改者姓名 varchar
     */
    @ApiModelProperty(value = "最新修改者姓名")
    @JsonProperty(index = 80)

    private String modifyUserName;
    /**
     * 最新修改者ID int8
     */
    @ApiModelProperty(value = "最新修改者ID")
    @JsonProperty(index = 90)

    private Long modifyUserId;
    /**
     * 创建时间 timestamp
     */
    @ApiModelProperty(value = "创建时间")
    @JsonProperty(index = 100)
    private LocalDateTime createTime;
    /**
     * 创建者姓名 varchar
     */
    @ApiModelProperty(value = "创建者姓名")
    @JsonProperty(index = 110)

    private String createUserName;
    /**
     * 创建者ID int8
     */
    @ApiModelProperty(value = "创建者ID")
    @JsonProperty(index = 120)

    private Long createUserId;
    /**
     * 权限描述 varchar
     */
    @ApiModelProperty(value = "权限描述")
    @JsonProperty(index = 150)

    private String description;

    /**
     * 子权限信息 varchar
     */
    @ApiModelProperty(value = "子权限信息")
    @JsonProperty(index = 150)

    private List<PermissionsResDto> children = new ArrayList<>();

    /**
     * 路由地址 varchar
     */
    @ApiModelProperty(value = "路由地址")
    @JsonProperty(index = 150)
    private String route;

    /**
     * 路径
     */
    @ApiModelProperty(value = "路径")
    @JsonProperty(index = 150)
    private String path;

    /**
     * 图标
     */
    @ApiModelProperty(value = "图标")
    @JsonProperty(index = 150)
    private String icon;

    /**
     * 排序
     */
    @ApiModelProperty(value = "排序")
    @JsonProperty(index = 150)
    private Integer sort;

    /**
     * 是否展示
     */
    @ApiModelProperty(value = "是否展示")
    @JsonProperty(index = 150)
    private Integer display;

    /**
     * 权限标识
     */
    @ApiModelProperty(value = "权限标识")
    @JsonProperty(index = 150)
    private String permissionsFlag;

}






